1. Field of the Invention
The invention relates to communication interfaces, particularly with respect to interfacing a real time communication link with a non-real time, asynchronous, command-oriented digital computer system.
2. Description of the Prior Art
Data processing and communication systems are in common usage where a real-time communication link interfaces with a digital computer system running application software. Typical digital computers operate in an asynchronous, nonreal-time and command-oriented environment. The data messages flow from the computer system to the link and from the link to the computer system through the interface therebetween. Such interfacing requirements exist in, for example, process control systems, laboratory data communications systems and voice messaging systems. For example, such an interface is required in computer controlled telephone systems that provide services such as Call Answer, Voice Mail, Voice Store and Forward and the like. In telephonic systems of this type, the environment on the communication or data link side of the interface is real-time and generally synchronous where the data transmitted and received over the data link is a full duplex, Pulse Code Modulation (PCM) representation of the voice band signals. On the other hand, the environment on the computer side of the interface is asynchronous, command oriented and nonreal-time where the application software running on the system has ultimate control over the flow of data through the interface. In such telephonic systems, the data tends to be of high rate and large volume where all of the voice data entered by users into the system must be acquired without the possibility of retry or retransmission. Additionally, digital voice messages stored in the computer system must be transported through the interface to the user in a continuous, real-time stream under control of the application software which is asynchronously executing in nonreal-time.
A prior art technique for providing a real-time interface of the type described, utilized application software designed to poll the data link interface a predetermined rate. The application must guarantee the polling rate to match the message rate requirements of the link. Such an interface suffers from the disadvantage of requiring the software to be tightly coupled to data link characteristics such as data size, data link protocol, timing and the like. The polling software must, for example, be responsive to such data link protocol as the particular Data Available and Data Required indicia as well as the Start and End Message flags utilized on the link in order to effect proper operation. Such limitations and restrictions on the application software tend to render portability of application to different systems impractical, if not impossible. Changes in the data link characteristics may require extensive time consuming and hence expensive modifications to the application software. A digital computer system executing software that polls the data link interface with a guaranteed rate also suffers from the disadvantage of requiring excess buffering. The primary disadvantage to the technique, however, is that the software must be tightly coupled to the data interface operation. Additionally, the ability perform other operations beyond controlling a single data link is severely constrained by the timing requirements imposed by the data link interface. While tile computer system is operating a data link, concurrent processing of another application or interface is rendered extremely difficult. The software for operating in this manner is very difficult to write and to maintain.
Another prior art technique for providing a real-time interface of the type described involves the digital computer system processing the data link interface as a result of interrupts received from the data link. This prior art interface again requires the application software to be tightly coupled to the data link characteristics with the concomitant disadvantages described above. The application software must be specifically written to process the particular interrupt protocol of the data link. Additionally, the latency associated with the computer system interrupts is a critical factor in maintaining proper operation of the data link. Elaborate and expensive buffering such as cache memory systems may be required to reduce latency time to a value commensurate with operating a present day, high speed digital data link. A digital computer system processing a data link interface as a result of processing interrupts provides the capability of processing one or more data link interfaces in a time-sharing manner along with applications or other interfaces on the computer system. A computer that is "interrupted" from its current processing task provides real-time service to a data link interface and thereafter returns to processing the interrupted task. When utilizing this approach, the software becomes less coupled to the data link operation, compared to the approach described above, by providing service to the data link interface in a coordinated manner only when required. Disadvantages to this approach, however, include interrupt latency, processing overhead, and software dependency. The maximum .latency to respond to an interrupt can be significant. Since the data link interface must have the capability to tolerate this maximum latency, bandwith limitations may be imposed upon the data link or performance requirements upon the computer system. Processing overhead associated with an interrupt driven scheme can be enormous. Each time an interrupt is issued to service the data link interface, the processing resource is utilized not only to provide service to the data link, but must also participate in at least the two processing context switches of interrupted task-to-data link service and data link service-to-interrupted task. The software associated with processing the data link interrupts must have intimate knowledge of the data link operation. Such software is difficult to write and maintain.
Another prior art technique for providing a real-time interface of the type described, is where data link interface data transfers are directly effected between the link and the computer system central data storage via a Direct Memory Access (DMA) technique. Such DMA systems generally require the application software to be tightly coupled to the data link characteristics with the concomitant disadvantages discussed above. Such systems usually do not utilize storage hierarchy that would otherwise provide buffering between the data source/destination and the central data storage. Without a storage hierarchy, the overhead of unbuffered DMA transactions on the central data storage can be undesirably high especially in high data rate and high data volume environments, or in highly pipelined central data storage systems. Specifically, many high performance computer systems utilize a DMA technique for transferring data between an interface and a memory subsystem while retaining interrupts or polling for a higher level of data link interface control. This permits the data transfers from the data link to the memory, as opposed to the control of the data link, to be effected without intervention from processing software. However, this approach has disadvantages including the lack of storage hierarchy and software dependency. The lack of storage hierarchy requires significant overhead, both in hardware and time, to permit small DMA transactions on the memory. This disadvantage is especially significant in systems with multiple interfaces each requiring DMA to the memory and/or highly pipelined memory systems. Although the data transfer responsibilities have been removed from the computer system, the details of the DL interface, such as DMA operation therewith and DL protocol, still burden the computer system software. Notwithstanding the above, such DMA systems are usually not utilized on large computers with channel architectures because of excessive memory and associated circuitry cost.
A disadvantage suffered by all of the prior art techniques discussed above, is the inability to minimize the turn-around delay between sending data to, and receiving data from a data link.